package de.piratech.dasding.services;

import java.util.List;

import de.piratech.dasding.data.AbstractAction;
import de.piratech.dasding.data.Location;
import de.piratech.dasding.data.database.DatabaseException;

public interface LocationFilter {

  /**
   * 
   * @param actions
   * @param startPoint
   * @param distance
   *          in kilometers
   * @return
   * @throws DatabaseException
   */
  <K extends AbstractAction> List<K> getEventsInArea(List<K> actions,
      Location startPoint, float distance) throws DatabaseException;

  /**
   * 
   * @param actions
   * @param longitude
   * @param latitude
   * @param distance
   *          in kilometers
   * @return
   */
  <K extends AbstractAction> List<K> getEventsInArea(List<K> actions,
      double latitude, double longitude, float distance) throws DatabaseException;

}
